A public switched telephone network (PSTN) conventionally comprises a plurality of nodes, or exchanges, which are interconnected by trunks which provide the call-carrying capacity of the network. The nodes are also interconnected by a signalling layer which handles the routing of calls and co-ordination of the nodes.
When a user device begins to make a call, an originating node to which the user device is connected transmits an initial address message (IAM) to a node in a forward direction of the call, i.e. towards a destination node. In the following specification the “forward direction” is intended to refer to a direction away from the originating node towards the destination node while “backward direction” is intended to refer to a direction away from the destination node and towards the originating node. Hence, a “forward connection” of a node is a connection between the node and a further node in the forward direction of the node, and similarly a “backward connection” of a node refers to a connection between the node and a further node in the backward direction of the node. “Call session” refers to the connection or connections between nodes necessary to connect the originating node and destination node.
The IAM includes codes identifying the originating node, the destination node, a circuit identification code for the trunk to be used and the dialled digits. The forward node reserves the voice circuit identified by the circuit identification code for the trunk between the originating node and forward node and sends an acknowledgement, an address complete message (ACM), in the backward direction to the originating node. A voice circuit on the trunk connecting the two nodes has therefore been reserved for the call session. Successive nodes are then connected in the same way until a connection is established between the originating node and the destination node.
When a call session ends, a node will release the relevant trunk circuit and send a release instruction (REL) to the other node connected to the trunk. The other node will likewise release the trunk circuit and send a release complete (RLC) message. The trunk circuits used in a call session will be successively released in the same way.
Using this mechanism, it is possible to establish a call which is routed such that it doubles back on itself, i.e. it is routed from a first node to a second node and then back to the first node, a phenomenon known as “tromboning” Tromboning is likely to arise in situations such as call forwarding where a call is routed to a destination exchange and then returned from the destination exchange, tying up network resources unnecessarily. Tromboning is also associated with number portability, and can also occur in other situations such as establishing conference calls, or establishing calls to roaming numbers in a mobile telecommunications network for example as discussed in U.S. Pat. No. 5,884,179. To overcome the problem of tromboning, one solution is so called “pivot routing”, described in for example ITU-T Recommendation Q730, which provides a general mechanism that can be invoked by an exchange or node in a network that decides that a call session should be sent to a called number other than that identified in the initial address message and where it is desirable to release the invoking exchange from the call path. When transmitting an IAM, an exchange can forward the information that it has the capacity to perform pivot routing. An exchange in the forward direction of the call can send a pivot request invoking this pivot capacity. The pivot request includes a redirection number to which the call should be redirected and optionally, instructions that the pivot call should be returned to the invoking exchange and a returned call identifier. When this happens, the pivot exchange can forward the call to the redirection number, or alternatively request a preceding exchange which also has a pivot routing capability to route the call session to the alternative called number.
ITU-T Q730 also specifies a further capability, call redirection, which provides the same functionality as pivot routing in that a call may be released to a different number at a node's request, and returned to that node. The capability is suggested for use when the node requesting redirection retains some interest in the call. For convenience, throughout this specification and claims the term ‘pivot’ will be used to refer to both pivot routing and call redirection, and the specification and claims should be read accordingly
Each trunk in a network carries a large number of voice circuits, so that each trunk can provide a leg of a large number of call sessions. It will be apparent that in the event of the failure of a network element, for example a trunk or a node, a large number of call sessions will fail and will need to be re-routed. To provide backup for such an event, the PSTN conventionally has a plurality of duplicate elements allowing a call session to be switched from a failing element to a backup element. For example, each pair of nodes is generally connected by two trunks, a main trunk and a backup trunk. In the event of failure of the main trunk, the node at each end of the trunk detects the failure and transfers all call sessions to the backup trunk. This approach however requires duplication of costly hardware, the provision of appropriate control technology, and the provision of an idle trunk connection.
An aim of the present invention is to reduce or overcome the above problem.